package leetcode;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author LiDong
 * @version 1.0.0
 * @createTime 2021/11/01
 */
public class Test575 {

    private static final Logger logger = LoggerFactory.getLogger(Test575.class);

    /**
     * 给定一个偶数长度的数组，其中不同的数字代表着不同种类的糖果，每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。
     * <p>
     * 输入: candies = [1,1,2,3]
     * 输出: 2
     * 解析: 妹妹获得糖果[2,3],弟弟获得糖果[1,1]，妹妹有两种不同的糖果，弟弟只有一种。这样使得妹妹可以获得的糖果种类数最多。
     */


    @Test
    public void test() {
        int[] arr = {1, 4, 2, 3, 5, 5, 4, 3};
        int num = distributeCandies(arr);
        logger.info("num:{}", num);
    }


    public int distributeCandies(int[] candyType) {
        // 对数组从小到大排序
        for (int i = 0; i < candyType.length - 1; i++) {
            for (int j = i; j < candyType.length - 1; j++) {
                if (candyType[j] >= candyType[j + 1]) {
                    int temp = candyType[j];
                    candyType[j] = candyType[j + 1];
                    candyType[j + 1] = temp;
                }
            }
        }
        int count = 1;
        for (int i = 1; i < candyType.length && count < candyType.length / 2; i++) {
            if (candyType[i] > candyType[i - 1]) {
                count++;
            }
        }
        return count;


    }
}
